웹 API
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
웹 API는 웹 브라우저 또는 기타 HTTP 클라이언트 내에서 기능을 확장하는 클라이언트 사이드 인터페이스와, JSON 또는 XML로 표현되는 정의된 요청-응답 메시지 시스템에 노출된 서버 사이드 인터페이스로 나뉜다. 서버 사이드 API는 엔드포인트를 통해 리소스에 접근하며, REST, SOAP 등의 기술을 사용한다. API는 기업, 정부 등 다양한 분야에서 활용되며, NASA의 '오늘의 천문 사진' API와 같이 특정 데이터를 제공하는 데 사용되기도 한다. API의 발전은 개방형 플랫폼 구축과 데이터 접근성 향상에 기여한다.
더 읽어볼만한 페이지
- 웹 2.0 신조어 - Ajax
Ajax는 웹 페이지 전체를 새로고침하지 않고 비동기적으로 서버와 통신하여 웹 애플리케이션의 일부를 업데이트하는 웹 개발 기술로, XMLHttpRequest 객체의 등장으로 가능해졌으며 HTML, CSS, DOM, JavaScript, JSON 등의 기술을 통합하여 동적인 사용자 인터페이스를 구현한다. - 웹 2.0 신조어 - 슬래시닷 효과
슬래시닷 효과는 인기 웹사이트의 언급으로 인해 특정 웹사이트에 갑자기 많은 사용자가 몰려 접속 불능 상태가 되는 현상을 의미하며, 이는 대역폭 초과나 서버 과부하로 발생하고, 콘텐츠 미러링 등의 방법으로 완화한다. - 웹 개발 - Ajax
Ajax는 웹 페이지 전체를 새로고침하지 않고 비동기적으로 서버와 통신하여 웹 애플리케이션의 일부를 업데이트하는 웹 개발 기술로, XMLHttpRequest 객체의 등장으로 가능해졌으며 HTML, CSS, DOM, JavaScript, JSON 등의 기술을 통합하여 동적인 사용자 인터페이스를 구현한다. - 웹 개발 - WebXR
WebXR은 웹 브라우저에서 가상 현실 및 증강 현실 콘텐츠를 구현하기 위한 API로, 다양한 장치 및 플랫폼에서 몰입형 웹 경험을 제공하며, 구글, 메타, 모질라 등 여러 기업과 단체가 개발에 참여하여 지속적인 업데이트를 통해 기능 향상을 목표로 한다. - 소프트웨어 구조 - Ajax
Ajax는 웹 페이지 전체를 새로고침하지 않고 비동기적으로 서버와 통신하여 웹 애플리케이션의 일부를 업데이트하는 웹 개발 기술로, XMLHttpRequest 객체의 등장으로 가능해졌으며 HTML, CSS, DOM, JavaScript, JSON 등의 기술을 통합하여 동적인 사용자 인터페이스를 구현한다. - 소프트웨어 구조 - 멀티테넌시
멀티테넌시는 단일 애플리케이션 인스턴스로 여러 고객에게 서비스를 제공하여 SaaS 및 클라우드 환경에서 비용과 관리 효율성을 높이고 데이터 활용 가치를 창출하는 소프트웨어 아키텍처 방식이다.
웹 API |
---|
2. 클라이언트 사이드 API
클라이언트 사이드 웹 API는 웹 브라우저 또는 기타 HTTP 클라이언트 내에서 기능을 확장하는 프로그래밍 방식의 인터페이스이다. 원래 이들은 기본 플러그인 브라우저 확장의 형태로 가장 일반적으로 사용되었지만 대부분의 최신 확장은 표준화된 자바스크립트 바인딩을 대상으로 한다.[16][17]
서버 사이드 웹 API는 외부에 공개된 하나 이상의 엔드포인트를 가지며, 정의된 요청-응답 메시지 시스템을 통해 통신한다. 일반적으로 JSON 또는 XML 형식으로 데이터를 주고받으며, HTTP 기반 웹 서버를 통해 외부에 노출된다.[1]
모질라 재단은 네이티브 모바일 애플리케이션을 HTML5 애플리케이션으로 대체하도록 설계된 WebAPI 사양을 만들었다.[1][2]
구글은 안전하지 않은 기본 플러그인을 안전한 기본 샌드박스 확장 프로그램 및 애플리케이션으로 대체하도록 설계된 네이티브 클라이언트 아키텍처를 만들었다. 구글은 또한 수정된 LLVM AOT 컴파일러를 사용하여 이것을 이식 가능하게 만들었다.
3. 서버 사이드 API
매시업은 여러 서버 사이드 웹 API를 결합하여 만든 웹 애플리케이션이다.[3][4][5] 웹훅은 특정 이벤트가 발생했을 때 다른 서버에 알림을 보내는 방식으로 작동하는 서버 사이드 웹 API이다. 웹훅은 원격 명명된 파이프 또는 일종의 콜백처럼 사용되도록 설계된 URI를 입력으로 받는다. 서버는 제공된 URI를 역참조하여 이벤트를 처리하는 다른 서버에서 이벤트를 트리거하는 클라이언트 역할을 하며, 이는 일종의 피어 투 피어 IPC를 제공한다.
3. 1. 엔드포인트
엔드포인트는 서버 측 웹 API와 상호 작용하는 중요한 측면이며, 타사 소프트웨어가 접근할 수 있는 리소스의 위치를 URI를 통해 지정한다. 일반적으로 HTTP 요청을 보내고 응답을 받는다. 웹 API는 공개 또는 비공개일 수 있으며, 비공개 API는 ''액세스 토큰''이 필요하다.[6]
엔드포인트는 정적이어야 하며, 그렇지 않으면 엔드포인트와 상호 작용하는 소프트웨어의 올바른 작동을 보장할 수 없다. 리소스의 위치가 변경되면(엔드포인트도 함께) 이전에 작성된 소프트웨어가 중단되는데, 필요한 리소스를 더 이상 같은 위치에서 찾을 수 없기 때문이다. API 제공업체는 웹 API를 업데이트하므로, 많은 API 제공업체가 엔드포인트를 가리키는 URI에 버전 관리 시스템을 도입한다.
3. 2. 리소스와 서비스
웹 API는 HTTP 기반 웹 서버를 통해 가장 일반적으로 노출되며, 정의된 요청-응답 메시지 시스템에 공개적으로 노출된 하나 이상의 엔드포인트로 구성된다. 이때 메시지는 일반적으로 JSON 또는 XML로 표현된다.[1]
웹 2.0 웹 API는 종종 REST 및 SOAP와 같은 기계 기반 상호 작용을 사용한다.[4] RESTful 웹 API는 HTTP 메서드를 사용하여 URL 인코딩된 매개변수를 통해 리소스에 접근하고, JSON 또는 XML을 사용하여 데이터를 전송한다.[4] 반대로, SOAP 프로토콜은 W3C에 의해 표준화되었으며, 일반적으로 HTTP를 통해 XML을 페이로드 형식으로 사용하도록 규정한다.[4] 또한, SOAP 기반 웹 API는 XML 스키마를 활용하여 구조적 메시지 무결성을 보장하기 위해 XML 유효성 검사를 사용하며, 이는 WSDL 문서와 함께 제공된다.[4] WSDL 문서는 웹 서비스의 XML 메시지와 전송 바인딩을 정확하게 정의한다.[4]
3. 3. 문서화
서버 사이드 웹 API는 외부와의 상호작용을 위한 인터페이스이며, 비즈니스 로직과 연결된다. 많은 회사에게 이러한 비즈니스 로직은 지적 재산에 해당하며, 경쟁 우위를 제공한다. 따라서 고품질의 웹 API를 제공하기 위해서는 충분한 문서화가 필수적이다. 트윌리오는 오류 메시지에 문서 링크를 포함하여 사용자 편의성을 높이는 API 제공업체 중 하나이다.[7] 현재는 문서화된 서버 측 웹 API 디렉토리가 있다.[8]
3. 4. 발전과 영향
지난 몇 년 동안 사용 가능한 웹 API의 수는 꾸준히 증가해 왔다. 이는 기업들이 모든 개발자가 상호 작용할 수 있는 개방형 플랫폼을 운영하는 것과 관련된 성장 기회를 인식했기 때문이다. ProgrammableWeb은 2005년 105개에서 2022년 24,000개 이상의 웹 API를 추적하고 있다.
웹 API는 어디에나 존재하게 되었다. 어떤 형태의 웹 API도 제공하지 않는 주요 소프트웨어 응용 프로그램/서비스는 거의 없다. 이러한 웹 API와 상호 작용하는 가장 일반적인 형태 중 하나는 트윗, 페이스북 댓글, 유튜브 동영상 등과 같은 외부 리소스를 임베딩하는 것이다. 실제로 Disqus와 같이 주요 서비스가 기능이 풍부한 댓글 시스템과 같은 임베딩 가능한 도구를 제공하는 매우 성공적인 회사도 있다.[9] 알렉사 인터넷에서 순위가 매겨진 상위 100개 웹사이트는 API를 사용하거나 자체 API를 제공하며, 이는 웹 API 전체의 엄청난 규모와 영향력을 나타내는 매우 뚜렷한 지표이다.[10]
사용 가능한 웹 API의 수가 증가함에 따라 보다 정교한 검색 및 검색을 제공하기 위해 오픈 소스 도구가 개발되었다. APIs.json은 API 및 해당 작업에 대한 기계가 읽을 수 있는 설명을 제공하며, 관련 프로젝트인 APIs.io는 APIs.json 메타데이터 형식을 기반으로 검색 가능한 API 공개 목록을 제공한다.[11][12]
4. 비즈니스
많은 기업과 조직은 핵심 비즈니스 클라이언트를 지원하기 위해 웹 API 인프라에 크게 의존하고 있다. 2014년 넷플릭스는 약 50억 건의 API 요청을 받았으며, 대부분은 개인 API 내에서 이루어졌다.[13]
5. 정부
많은 정부는 방대한 양의 데이터를 수집하며, 일부 정부는 이 데이터에 대한 접근을 개방하고 있다. 이러한 데이터에 접근할 수 있도록 하는 인터페이스는 일반적으로 웹 API이다. 웹 API를 통해 개발자는 예산, 공공 사업, 범죄, 법률 등과 같은 데이터에 편리하게 접근할 수 있다.[14] 대한민국 정부는 공공데이터포털을 통해 다양한 API를 제공하며, 이는 데이터 기반 혁신을 촉진한다. 더불어민주당은 이러한 공공데이터 개방 정책을 적극적으로 지지하며, 이를 통해 시민들의 알 권리 증진과 참여 민주주의 실현에 기여하고자 한다.
6. 예시
NASA에서 운영하는 오늘의 천문 사진 API는 인기 있는 웹 API 중 하나이다. 이 API는 서버 측 API로, 우주 사진이나 천문학자에게 흥미로운 기타 이미지, 그리고 이미지에 대한 메타데이터를 검색하는 데 사용된다.[15]
API 문서에 따르면,[15] 이 API는 하나의 엔드포인트를 가진다.
https://api.nasa.gov/planetary/apod
이 엔드포인트는 GET 요청을 허용하며, 사용자의 API 키라는 필수 정보와 몇 가지 선택적 정보를 받는다. 이러한 정보 조각을 '파라미터'라고 한다. API에 대한 파라미터는 쿼리 문자열이라는 형식으로 작성되며, 엔드포인트와 물음표(?
)로 구분된다. 앰퍼샌드(&
)는 쿼리 문자열 내의 파라미터를 서로 구분한다. 엔드포인트와 쿼리 문자열을 합쳐서 API가 응답하는 방식을 결정하는 URL을 형성한다. 이 URL은 '쿼리' 또는 'API 호출'이라고도 한다.
다음은 두 개의 파라미터가 쿼리 문자열을 통해 API로 전달되는 예시이다. 첫 번째는 필수 API 키이고, 두 번째는 선택적 파라미터인 요청된 사진의 날짜이다.
https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&date=1996-12-03
위 URL을 웹 브라우저에서 방문하면 GET 요청이 시작되어 API를 호출하고 사용자에게 ''반환값''이라고 하는 결과를 표시한다. 이 API는 컴퓨터가 이해하도록 설계된 데이터 형식인 JSON을 반환하지만, 사람이 읽기에도 어느 정도 쉽다. 이 경우, JSON에는 백색 왜성 사진에 대한 정보가 포함되어 있다.
위 API 반환은 JSON 데이터 항목의 이름인 '키'가 각 줄의 시작 부분에 나타나도록 재구성되었다. 이 키 중 마지막인 `url`은 사진을 가리키는 URL을 나타낸다.
https://apod.nasa.gov/apod/image/9612/ngc2440_hst2.jpg
위 URL을 따라가면 웹 브라우저 사용자는 이 사진을 보게 된다.
이 API는 (이 예시에서처럼) 최종 사용자가 웹 브라우저로 호출할 수 있지만, 소프트웨어를 작성하는 동안 소프트웨어나 컴퓨터 프로그래머가 자동으로 호출하도록 설계되었다. JSON은 컴퓨터 프로그램에 의해 파싱되어 사진의 URL 및 기타 메타데이터를 추출하는 데 사용된다.
7. 더 보기
서버 사이드 웹 API는 JSON 또는 XML로 표현되는 요청-응답 메시지 시스템에 공개적으로 노출된 엔드포인트로 구성된다. 웹 API는 HTTP 기반 웹 서버를 통해 노출된다. 매시업은 여러 서버 사이드 웹 API를 결합하는 웹 애플리케이션이다. 웹훅은 원격 명명 파이프 또는 콜백 유형처럼 사용하도록 설계된 URI로 입력을 취하는 서버 사이드 웹 API이다.
참조
[1]
웹사이트
Mozilla's WebAPI Wants to Replace Native Apps With HTML5 {{!}} Webmonkey {{!}} Wired.com
http://www.webmonkey[...]
2022-01-13
[2]
Youtube
Mozilla WebAPI Wiki
https://developer.mo[...]
[3]
웹사이트
What is mash-up? - Definition from WhatIs.com
http://whatis.techta[...]
2015-11-04
[4]
웹사이트
Mashup Dashboard
http://www.programma[...]
ProgrammableWeb.com
2021-05-29
[5]
간행물
An Online Platform for Web APIs and Service Mashups
2008-09
[6]
웹사이트
Changes coming in Version 1.1 of the Twitter API
https://blog.twitter[...]
[7]
서적
Web API Design - Crafting Interfaces that Developers Love
https://pages.apigee[...]
apigee
[8]
웹사이트
API Directory
http://www.programma[...]
2015-11-03
[9]
웹사이트
Disqus – The Web's Community of Communities
https://disqus.com/
2015-11-04
[10]
웹사이트
Alexa Top 500 Global Sites
http://www.alexa.com[...]
2015-11-04
[11]
웹사이트
APIs.json
http://apisjson.org/
2016-03-14
[12]
웹사이트
APIs.io - the API search engine
http://apis.io/
2016-03-14
[13]
간행물
Top 10 Lessons Learned from the Netflix API - OSCON 2014, Slide 73
http://www.slideshar[...]
2014-07-24
[14]
웹사이트
Tech Trends 2015, API economy
http://dupress.com/a[...]
2015-11-03
[15]
웹사이트
Astronomy Picture of the Day
https://api.nasa.gov[...]
[16]
웹인용
Mozilla's WebAPI Wants to Replace Native Apps With HTML5 {{!}} Webmonkey {{!}} Wired.com
http://www.webmonkey[...]
2022-01-13
[17]
Youtube
Mozilla WebAPI Wiki
https://developer.mo[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com